﻿#pragma execution_character_set("utf-8")
#include "centerwidget.h"
#include "ui_centerwidget.h"

/**
 * @brief 中心窗口组件构造函数
 * @details 初始化导航组件、关于界面、校园简介界面和展览界面，
 * 并将这些子界面添加到堆叠窗口中进行统一管理。
 * 初始化顺序：
 * 1. 创建各子界面实例
 * 2. 将子界面添加至堆叠窗口
 * 3. 设置默认显示界面为校园简介
 */
CenterWidget::CenterWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::CenterWidget)
{
    ui->setupUi(this);
    // 初始化子界面组件
    m_NavigationWidget = new NavigationWidget();  ///< 路径导航主界面
    m_AboutWidget = new AboutWidget();            ///< 系统关于界面
    m_CampusProfileWidget = new CampusProfileWidget(); ///< 校园简介界面
    m_ExhibitionWidget = new ExhibitionWidget();  ///< 校园展览界面

    // 添加子界面到堆叠窗口
    ui->stackedWidget->addWidget(m_AboutWidget);
    ui->stackedWidget->addWidget(m_CampusProfileWidget);
    ui->stackedWidget->addWidget(m_ExhibitionWidget);
    ui->stackedWidget->addWidget(m_NavigationWidget);

    setWindowTitle("Qt东北石油大学地图导航");
    ui->stackedWidget->setCurrentWidget(m_CampusProfileWidget);
}

/**
 * @brief 析构函数
 * @details 清理UI资源，自动释放由Qt父对象管理的子组件
 */
CenterWidget::~CenterWidget()
{
    delete ui;
}

/**
 * @brief 校园简介按钮点击事件
 * @details 切换堆叠窗口显示校园简介界面
 */
void CenterWidget::on_pushButton_1_clicked()
{
    ui->stackedWidget->setCurrentWidget(m_CampusProfileWidget);
}

/**
 * @brief 校园展览按钮点击事件
 * @details 切换堆叠窗口显示校园展览界面
 */
void CenterWidget::on_pushButton_2_clicked()
{
    ui->stackedWidget->setCurrentWidget(m_ExhibitionWidget);
}

/**
 * @brief 路径导航按钮点击事件
 * @details 切换堆叠窗口显示路径导航主界面
 */
void CenterWidget::on_pushButton_3_clicked()
{
    ui->stackedWidget->setCurrentWidget(m_NavigationWidget);
}

/**
 * @brief 关于系统按钮点击事件
 * @details 切换堆叠窗口显示系统关于界面
 */
void CenterWidget::on_pushButton_4_clicked()
{
    ui->stackedWidget->setCurrentWidget(m_AboutWidget);
}

/**
 * @brief 返回登录按钮点击事件
 * @details 发射切换窗口信号，返回登录界面
 */
void CenterWidget::on_pushButton_5_clicked()
{
   emit sendDisWidget("m_LoginWidget");
}
